Currently most mobile services and applications are based on a model where a terminal assumes the role of a client, which initiates communications toward a server in the network. Further flexibility is attainable by allowing also network entities to initiate connections toward a terminal.
Modern communications systems make use of open communication channels terminated at end users or communication terminals. So-called “always open” connections enable various presence and instant messaging services as well as various other services, for instance.
When an always-on connection is needed, it is also possible to send so-called heartbeat or keep-alive messages at a sufficiently high rate in order to prevent the closing of the connection due to timeouts. For instance, U.S. Pat. No. 7,088,698 discloses a method to sustain a TCP connection in which a server or host intermittently sends to a client particular “keep-alive” data packets, which are dummy TCP data packets numbered by a TCP serial number of the present counter minus one. Such data packets are neglected by the client but yet suffice to reset an idling timer at a remote server so that a session with the server would not expire as long as the host keeps on receiving acknowledgements to these keep-alive data packets from the client. Unfortunately, when using internet protocols such as User Datagram Protocol (UDP), a connection through internet firewalls, routers and network address translators (NAT) and firewalls may only be maintained in an open state for a relatively short period such as 20 seconds. Namely, the NATs and firewalls have timeouts, which cause closing of ports or more generally general closing of communication paths used in the connection, if no traffic passes through them for a certain time. However, a 20 seconds interval for receiving heartbeat data packets and responsively sending acknowledgements may cause excessive battery draining in battery operated devices such as cellular terminals which have been designed to spend time in an inactive mode when not in active use by the user.
Advanced cellular terminals have power-saving schemes in which the terminals only occasionally wake up sufficiently to check whether they are being paged and wherein transmitter circuitry is only powered when needed. Hence, modern mobile terminals may idle most of the time with the receiver and particularly transmitter side substantially switched off in order to save battery. An incoming heartbeat message described in U.S. Pat. No. 7,088,698, on the other hand, forces the terminal to wake up to receive the heartbeat data packet and to transmit an acknowledgement. Hence, the heartbeat data packets may grossly reduce the battery life of a mobile telephone and their necessary acknowledgements may drain the battery even faster due to the relatively high energy required to transmit radio signals to a base transceiver station. Moreover, even if the client has mains power, the heartbeat messages terminating at wireless terminals waste precious radio resources.
In order to reduce the power draw, it is also possible to send keep-alive data packets from a mobile terminal to the host when the mobile terminal has other signaling to do so that the transmitter need not be separately powered. Such timing allows the terminal to sleep or idle for most of the time in order to save power and also to revive a possibly dropped radio connection. Unfortunately, not all the present servers would consider received keep-alive data packets sufficient. Instead, many hosts would still keep on sending heartbeat messages terminated at the mobile terminal so that the keep-alive messages sent from the mobile terminal would be rendered unnecessary for the host to keep its session open, even if they might be good to maintain a radio connection to a radio access network.
In order to avoid or mitigate the problems resulting from the closing of communication paths, is has been recommended to lengthen the firewall and NAT timeouts. Unfortunately, the timeouts cannot be extended if it is not possible to control all of the NATs and firewalls on the route along which the data to and from the terminal has to pass. For instance, cellular telecommunications operators usually have their own NATs and firewalls that can not be controlled by other parties. Further, it is not practical to expect that the numerous NATs and firewalls of all different cellular and internet operators be adapted solely for the advantages of mobile users.
A product called Nimbuzz (www.nimbuzz.com/en/features/buzz/) uses a method, where the need for the connection is circumvented by providing a capability for a first person to ring a second person's telephone when the second person is not online to Nimbuzz. The call comes from the Nimbuzz central number and is automatically disconnected immediately after a ring or two. When the second person notes this call she starts up the Nimbuzz connection. This mechanism is, unfortunately, somewhat too laborious if the connection is often needed (e.g. to update presence status changes) and may cause excessive signaling especially in a mobile telecommunications network if such hosts the second person's terminal.